package com.ruben.vistor;

/**
 * 具体访问者
 *
 * @author <achao1441470436@gmail.com>
 * @since 2021/7/18 14:24
 */
public class ConcreteVisitors implements Visitor {

    /**
     * 执行关联
     *
     * @param e 元素
     * @author <achao1441470436@gmail.com>
     * @since 2021/7/18 15:03
     */
    public void accept(Element e) {
        e.accept(this);
    }

    /**
     * 访问a
     *
     * @param e 元素A
     * @author <achao1441470436@gmail.com>
     * @since 2021/7/18 14:18
     */
    @Override
    public void visit(ElementA e) {
        e.featureA();
    }

    /**
     * 访问b
     *
     * @param e 元素B
     * @author <achao1441470436@gmail.com>
     * @since 2021/7/18 14:18
     */
    @Override
    public void visit(ElementB e) {
        e.featureB();
    }
}
